#ifndef LEGOLAND_H
#define LEGOLAND_H
#include <vector>
#include "structs.h"

/**Data structure that holds legos aka genus/species and probability values**/
class legoland
{
    private:
        //unsigned short taxaCode;    //code representation of the genus/species
        std::vector<lego> * legoville;  //1D array of vectors that represents a 2D array to hold the legos
        unsigned long long multiplier;  //factor by which to multiply centroid coordinates

    public:
        legoland();
        legoland(unsigned long long index_factor);
        virtual ~legoland();
        bool add(unsigned short taxon, centroid centroids[], int numCentroids);
        std::vector<lego> search(coordinates c);
        std::vector<lego> search(unsigned long long lego_index);
        unsigned long long get_multiplier();
        void change_multiplier(unsigned long long m);
        unsigned long long get_size_legoville();
        bool load_legos(unsigned long long index_factor, std::vector<lego> v);
};

#endif // LEGOLAND_H
